#ifndef _GRAPHICS_H
#define _GRAPHICS_H


#include "myError.h"

class Graphics {
  public:
    //Returns Pointer to current instance of graphics engine
    static Graphics* GetInstance();

    //Initializes Graphic Engine.
    virtual common::Error::code Init() = 0;


  protected:
    //Pointer to the instance of self.
    static Graphics * _instance;


  public:
    //Runs the initialized Graphics with current settings.
    virtual common::Error::code Start() = 0;

    //Stops the engine.
    //Release everything that's not useful for next start.
    virtual common::Error::code Stop() = 0;

    //Stop and Start the engine with new current settings.
    virtual common::Error::code Restart() = 0;

    virtual const char GetVersionName() = 0;

};
#endif
